package com.ruoyi.ai.service.impl;

import java.util.List;

import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.ruoyi.ai.domain.AiWork;
import com.ruoyi.ai.mapper.AiWorkMapper;
import com.ruoyi.common.annotation.DataUserScope;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.uuid.IdUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.ai.mapper.AiDialogueMapper;
import com.ruoyi.ai.domain.AiDialogue;
import com.ruoyi.ai.service.IAiDialogueService;

/**
 * 对话管理Service业务层处理
 *
 * @author ai
 * @date 2024-12-12
 */
@Service
public class AiDialogueServiceImpl implements IAiDialogueService
{
    @Autowired
    private AiDialogueMapper aiDialogueMapper;

    @Autowired
    private AiWorkMapper aiWorkMapper;

    /**
     * 查询对话管理
     *
     * @param dialogueId 对话管理主键
     * @return 对话管理
     */
    @Override
    public AiDialogue selectAiDialogueByDialogueId(String dialogueId)
    {
        return aiDialogueMapper.selectAiDialogueByDialogueId(dialogueId);
    }

    /**
     * 查询对话管理列表
     *
     * @param aiDialogue 对话管理
     * @return 对话管理
     */
    @Override
    @DataUserScope
    public List<AiDialogue> selectAiDialogueList(AiDialogue aiDialogue)
    {
        return aiDialogueMapper.selectAiDialogueList(aiDialogue);
    }

    /**
     * 新增对话管理
     *
     * @param aiDialogue 对话管理
     * @return 结果
     */
    @Override
    public int insertAiDialogue(AiDialogue aiDialogue)
    {
        aiDialogue.setCreateTime(DateUtils.getNowDate());
        if (ObjectUtils.isEmpty(aiDialogue.getWorkId())){
            aiDialogue.setWorkId(0L);
        }else {
            AiWork aiWork=new AiWork();
            aiWork.setWorkId(aiDialogue.getWorkId());
            aiWork.setChatNumber(1L);
            aiWorkMapper.updateAiWorkNumber(aiWork);
        }
        return aiDialogueMapper.insertAiDialogue(aiDialogue);
    }

    /**
     * 修改对话管理
     *
     * @param aiDialogue 对话管理
     * @return 结果
     */
    @Override
    public int updateAiDialogue(AiDialogue aiDialogue)
    {
        aiDialogue.setUpdateTime(DateUtils.getNowDate());
        return aiDialogueMapper.updateAiDialogue(aiDialogue);
    }

    /**
     * 批量删除对话管理
     *
     * @param dialogueIds 需要删除的对话管理主键
     * @return 结果
     */
    @Override
    public int deleteAiDialogueByDialogueIds(String[] dialogueIds)
    {
        return aiDialogueMapper.deleteAiDialogueByDialogueIds(dialogueIds);
    }

    /**
     * 删除对话管理信息
     *
     * @param dialogueId 对话管理主键
     * @return 结果
     */
    @Override
    public int deleteAiDialogueByDialogueId(String dialogueId)
    {
        return aiDialogueMapper.deleteAiDialogueByDialogueId(dialogueId);
    }
}
